-- stack: in -- format: 8 (HyperCard 1) -- flags: 0x0 (none) -- protect password hash: 0 -- maximum user level: 5 (scripting) -- window: Rect(x1=0, y1=0, x2=0, y2=0) -- screen: Rect(x1=0, y1=0, x2=0, y2=0) -- card dimensions: w=0 h=0 -- scroll: x=0 y=0 -- background count: 5 -- first background id: 2726 -- card count: 15 -- first card id: 6151 -- list block id: 7244 -- print block id: 4793 -- font table block id: 0 -- style table block id: 0 -- free block count: 3 -- free size: 3744 bytes -- total size: 78848 bytes -- stack block size: 6144 bytes -- created by hypercard version: 0x00000000 -- compacted by hypercard version: 0x00000000 -- modified by hypercard version: 0x00000000 -- opened by hypercard version: 0x01208000 -- patterns[0]: 0x0000000000000000 -- patterns[1]: 0x8000000008000000 -- patterns[2]: 0x8800220088002200 -- patterns[3]: 0x8888222288882222 -- patterns[4]: 0x88AA22AA88AA22AA -- patterns[5]: 0xCCAA33AACCAA33AA -- patterns[6]: 0xEEAABBAAEEAABBAA -- patterns[7]: 0xEEBBBBEEEEBBBBEE -- patterns[8]: 0xFFBBFFEEFFBBFFEE -- patterns[9]: 0xFFBBFFFFFFBBFFFF -- patterns[10]: 0x8010022001084004 -- patterns[11]: 0xFFFFFFFFFFFFFFFF -- patterns[12]: 0x8822882288228822 -- patterns[13]: 0x1122448811224488 -- patterns[14]: 0xC4800C6843023026 -- patterns[15]: 0xB130031BD8C00C8D -- patterns[16]: 0xAA00AA00AA00AA00 -- patterns[17]: 0x8822552288225522 -- patterns[18]: 0x8855225588552255 -- patterns[19]: 0x77DD77DD77DD77DD -- patterns[20]: 0x8000000000000000 -- patterns[21]: 0xAA55AA55AA55AA55 -- patterns[22]: 0x038448300C020101 -- patterns[23]: 0x8244394482010101 -- patterns[24]: 0x8814224188412214 -- patterns[25]: 0x8080413E080814E3 -- patterns[26]: 0x22048C7422179810 -- patterns[27]: 0xBE808808EB088880 -- patterns[28]: 0x25C8328964244C92 -- patterns[29]: 0xA29C41BE2AC914EB -- patterns[30]: 0x40A00000040A0000 -- patterns[31]: 0x8040200002040800 -- patterns[32]: 0xAA00800088008000 -- patterns[33]: 0xFF80808080808080 -- patterns[34]: 0x081C22C180010204 -- patterns[35]: 0xFF808080FF080808 -- patterns[36]: 0xF87422478F172271 -- patterns[37]: 0xBF00BFBFB0B0B0B0 -- patterns[38]: 0xFF7FBE5DA2418000 -- patterns[39]: 0xFAF5FAF5A050A050 -- checksum: 0x0 ----- HyperTalk script ----- -- init stack on openStack initAll end openStack on resume initAll pass resume end resume on startUp initAll pass startUp end startUp on initAll push recent card -- flag whether New Card commands are from user or from XCMD global fromXCMD, volumeXCMD,hardDisk,applPath -- init Find string and buttons global sourceString put empty into sourceString global selectedText, whichButton,whichFindButton -- the ShowPath XFCN will return an Application's pathname --in this global if the "Record" button is clicked put empty into applPath put false into fromXCMD -- New Card command is from user put false into hardDisk -- Floppies being cataloged -- field remembers Find dialog box settings between stack uses get line 2 of card field "Hold Globals" of card "AutoCat Index" if it is not empty then put line 1 of card field "Hold Globals" of card "AutoCat Index" into selectedText put line 2 of card field "Hold Globals" of card "AutoCat Index" into whichButton put line 3 of card field "Hold Globals" of card "AutoCat Index" into whichFindButton else -- if it doesn't remember, set defaults put empty into selectedText put 1 into whichButton put 1 into whichFindButton end if end initAll on closeStack -- record find dialog box's most recent settings global selectedText, whichButton,whichFindButton put selectedText into line 1 of card field "Hold Globals" of card "AutoCat Index" put whichButton into line 2 of card field "Hold Globals" of card "AutoCat Index" put whichFindButton into line 3 of card field "Hold Globals" of card "AutoCat Index" -- Auto Compact stack if necessary if the freeSize of this stack >= 15000 then answer "The AutoCat Stack has " & round(the freeSize of this stack/1024) & "k free, Compact?" with "NO" or "OK" if it is "OK" then doMenu "compact stack" end if end closeStack --find field line clicked on in a scrlloing field Function lineClicked return (trunc(((scroll of the target) + (item two of the clickloc) - (item two of the rect of the target)) div the textheight of the target) + one) end lineClicked on returnKey global sourceString -- last find string if sourceString is not empty then -- continue search set cursor to 4 searchAC 0 else pass returnKey end if end returnKey on searchAC flag -- which field to search, what mode to use, e.g., chars, word... -- these globals are maintained by the SearchAutoCat XFCN global whichButton,whichFindButton -- the source global sourceString -- a simple XFCN which puts up a dialog box looking for the search -- string and the options if flag >0 then put SearchAutoCat () into sourceString end if if sourceString is empty then exit searchAC -- the XFCN returns 1,2, or 3 for which find mode button was set if whichButton contains 1 then -- search all fields if whichFindButton contains 1 then -- look at beginnings of words find sourceString end if -- wfb 1 if whichFindButton contains 2 then -- look at words only find word sourceString end if -- wfb 2 if whichFindButton contains 3 then -- look at chars find chars sourceString end if -- wfb 3 end if -- whichButton -- XFCN returns 1-8 depending on which field button was set if whichButton contains 2 then SearchFields 9, 3424 end if if whichButton contains 3 then SearchFields 1, 3424 end if if whichButton contains 4 then SearchFields 1, 2241 end if if whichButton contains 5 then SearchFields 2, 2241 end if if whichButton contains 6 then SearchFields 61, 2241 end if if whichButton contains 7 then SearchFields 62, 2241 end if if whichButton contains 8 then SearchFields 50, 2241 end if end searchAC on SearchFields fieldID,bkgndID global whichButton,whichFindButton,sourceString -- go to the proper bkgnd to begin search if the ID of this bkgnd is not bkgndID then go to bkgnd ID bkgndID end if if whichFindButton contains 1 then -- look at beginnings of words find sourceString in bkgnd field ID fieldID end if -- wfb 1 if whichFindButton contains 2 then -- look at words only find word sourceString in bkgnd field ID fieldID end if -- wfb 2 if whichFindButton contains 3 then -- look at chars find chars sourceString in bkgnd field ID fieldID end if -- wfb 3 send mouseWithin to bkgnd field ID fieldID end SearchFields on doMenu which -- trap command-F to bring up Find dialog box if which is "Find..." then searchAC 1 else pass doMenu end if end doMenu